//角色状态
var roleStatusJson = {
	'0' : '冻结',
	'1' : '启用'
};
//用户账号状态
var operatorStatusJson = {
	'0' : '已冻结',
	'1' : '已开通'
};
//页面全局变量
var global={
		userIds:[]
};
//页面初始化
$(function(){
	initTable();
});
//初始化表格
function initTable(){
	$('#tt').datagrid({
		title : '角色列表信息',
		width : backendCommon.getWidth(0.92),
		loadMsg : "数据装载中....",
		url : mainDomain+'/user/findRoleList.action',
		nowrap : false,
		fitColumns : true,
		striped : true,
		rownumbers : true,
		singleSelect : true,
		pagination : true,
		pageSize : 10,
		queryParams : {
			"roleName":$("#roleName").val(),
			"roleStatus":$("#roleStatus").val()
			}, 
		columns : [[
				{field : 'roleName',title : '角色名称',width : $(this).width() * 0.30,align : 'center'},
				{field : 'roleStatus',title : '状态',width : $(this).width() * 0.12,align : 'center',
					formatter : function(value, rec, index) {
						var str = "";
						if(rec.roleStatus != null){
							str = roleStatusJson[rec.roleStatus];
						}
						return str;
					}
				},
				{field : 'menuCount',title : '权限数',width : $(this).width() * 0.10,align : 'center'},
				{field : 'operatorCount',title : '用户数',width : $(this).width() * 0.10,align : 'center'},
				{field : 'opt',title : '操作',width : $(this).width() * 0.30,align : 'center',
					formatter : function(value, rec, index) {
						var str = "";
						str += '<div><a class="btn_blue06" href="javascript:void(0);" onclick="updateMenuWin('+rec.id+');">编辑权限</a></div>';
						str += '<div><a class="btn_blue06" href="javascript:void(0);" onclick="openEditUserWin('+index+');">编辑用户</a></div>';
						if(rec.roleStatus == 0){
							str += '<div><a class="btn_blue06" href="javascript:void(0);" onclick="enableRole('+rec.id+');">启用</a></div>';
						}else if(rec.roleStatus == 1){
							str += '<div><a class="btn_blue06" href="javascript:void(0);" onclick="unableRole('+rec.id+');">冻结</a></div>';
						}
						str += '<div><a class="btn_blue06" href="javascript:void(0);" onclick="deleteRole('+rec.id+');">删除</a></div>';
						return str;
					}
				}
			]]
	});
}
//搜索
function doSearch(){
	$('#tt').datagrid('reload', {
		"roleName":$("#roleName").val(),
		"roleStatus":$("#roleStatus").val()
    });
}

function updateMenuWin(roleId){
	backendCommon.openInTabs(mainDomain + "/role/role2Menu.action?roleId=" + roleId, "编辑权限");
}

//打开新增窗口
function addWin(){
	//初始化窗口
	$("#roleNameAdd").val("");
	$("#remarkAdd").val("");
	backendCommon.openeWin('addWin');
	$("#saveBtn").unbind('click').click(function(){
		add();
	});
	$("#cancelBtn").click(function(){
		backendCommon.closeWin('addWin');
	});
}
//新增
function add(){
	//参数校验
	if(!$("#addForm").form('validate')){
		return;
	}
	//参数
	var roleNameAdd = backendCommon.removeHTMLTag($("#roleNameAdd").val());
	var remarkAdd = backendCommon.removeHTMLTag($("#remarkAdd").val());
	var param = {
		"roleName":roleNameAdd,
		"remark":remarkAdd
	};
	var url = mainDomain+"/user/addRole.action";
	$.post(url, param, function(rs){
		if(rs.success){
			backendCommon.closeWin('addWin');
			$('#tt').datagrid('reload');
			$.messager.alert('提示',"操作成功!",'info');
		}
	},'json');
}
//冻结
function unableRole(id){
	var param = {
		"id":id
	};
	var url = mainDomain+"/user/unableRole.action";
	$.messager.confirm('确认','确认冻结吗？',function(r){
		if(r){
			$.post(url, param, function(rs){
				if(rs.success){
					$('#tt').datagrid('reload');
				}else{
					$('#tt').datagrid('reload');
				}
			},'json');
		}
	});
}
//启用
function enableRole(id){
	var param = {
		"id":id
	};
	var url = mainDomain+"/user/enableRole.action";
	$.messager.confirm('确认','确认启用吗？',function(r){
		$.post(url, param, function(rs){
			if(rs.success){
				$('#tt').datagrid('reload');
			}else{
				$('#tt').datagrid('reload');
			}
		},'json');
	});
}
//删除
function deleteRole(id){
	var param = {
		"id":id
	};
	var url = mainDomain+"/user/deleteRoleById.action";
	$.messager.confirm('确认','确认删除吗？',function(r){
		if(r){
			$.post(url, param, function(rs){
				if(rs.success){
					$('#tt').datagrid('reload');
				}else{
					$('#tt').datagrid('reload');
				}
			},'json');
		}
	});
}
//编辑用户窗口
function openEditUserWin(index){
	//初始化窗口
	$("#userName").val("");
	$("#realName").val("");
	$("#operatorStatus").val("");
	$("#powerStatus").val("");
	//获取角色信息
	var datas =$('#tt').datagrid('getData').rows;
	var row = datas[index];
	$("#roleId").val(row.id);
	$("#roleNameSpan").html(row.roleName);
	$("#cancelBtnUser").click(function(){
		backendCommon.closeWin('editUserWin');
	});
	$("#saveRole2User").click(function(){
		saveRole2User();
	});
	global.userIds = [];
	//查询角色下的用户信息
	$.post(mainDomain+'/user/findOperatorRoleByRoleId.action',{'roleId':row.id},function(rs){
		if(!$.isEmptyObject(rs)){
			$.each(rs,function(i,v){
				//保存角色下的用户ID
				if(global.userIds.indexOf(v.backOperatorId) < 0){
					global.userIds.push(v.backOperatorId);
				}
			});
		}
	},'json');
	initUsreTable();
	backendCommon.openeWin('editUserWin');
}
//初始化用户列表
function initUsreTable(){
	$('#user').datagrid({
//		width : backendCommon.getWidth(0.62),
		loadMsg : "数据装载中....",
		url : mainDomain+'/backend/findBackendVOSPgByDTO.action',
		nowrap : false,
		fitColumns : true,
		striped : true,
		rownumbers : true,
		singleSelect : false,
		pagination : true,
		pageSize : 10,
		pageNumber : 1,
		queryParams : {
			"userName":$("#userName").val(),
			"realName":$("#realName").val(),
			"operatorStatus":$("#operatorStatus").val(),
			"roleId":$("#roleId").val(),
			"powerStatus":$("#powerStatus").val()
		}, 
		columns : [[
				{field : 'userName',title : '登录账号',width : 120,align : 'center'},
				{field : 'realName',title : '用户名',width : 120,align : 'center'},
				{field : 'company',title : '所属公司',width : 120,align : 'center'},
				{field : 'department',title : '所属部门',width : 100,align : 'center'},
				{field : 'operatorStatus',title : '账号状态',width : 60,align : 'center',
					formatter : function(value, rec, index) {
						var str = "";
						if(rec.operatorStatus != null){
							str = operatorStatusJson[rec.operatorStatus];
						}
						return str;
					}
				},
				{field : 'id',title : '',width : 40,align : 'center',checkbox : true} 
			]],
			onLoadSuccess:function(data){
	        	if(!$.isEmptyObject(data)){
	    			$.each(data.rows,function(i,v){
	    				var userIds = global.userIds;
	    				if(!$.isEmptyObject(userIds)){
	    					if(userIds.indexOf(v.id) >= 0){
	    						$("input:checkbox[value="+v.id+"]").attr('checked','true');
	    					}
	    				}
	    			});
	    		}
	        },
	        onCheck:function(rowIndex,rowData){
	        	//选中时添加用户ID
	        	var userIds = global.userIds;
	        	if(userIds.indexOf(rowData.id) < 0){
	        		global.userIds.push(rowData.id);
				}
	        },
	        onCheckAll:function(rows){
	        	//全选时
	        	var userIds = global.userIds;
	        	//获取批量操作商家商品
	        	$.each(rows, function(index, rowData){
	        		if(userIds.indexOf(rowData.id) < 0){
		        		global.userIds.push(rowData.id);
					}
	        	});
	        },
	        onUncheck:function(rowIndex,rowData){
	        	//取消选中时移除用户ID
	        	var userIds = global.userIds;
	        	if(userIds.indexOf(rowData.id) >= 0){
	        		global.userIds.splice(userIds.indexOf(rowData.id), 1);
				}
	        },
	        onUncheckAll:function(rows){
	        	//全部取消选中时
	        	var userIds = global.userIds;
	        	//获取批量操作商家商品
	        	$.each(rows, function(index, rowData){
	        		if(userIds.indexOf(rowData.id) >= 0){
	        			global.userIds.splice(userIds.indexOf(rowData.id), 1);
					}
	        	});
	        }
	});
}
//查找用户
function doSearchUser(){
	$('#user').datagrid('reload', {
		"userName":$("#userName").val(),
		"realName":$("#realName").val(),
		"operatorStatus":$("#operatorStatus").val(),
		"roleId":$("#roleId").val(),
		"powerStatus":$("#powerStatus").val()
    });
}
//角色授权
function saveRole2User(){
	//参数
	var operatorRoleDTOJson = {
			"roleId":$("#roleId").val(),
			"backOperatorIds":global.userIds
			
	};
	var url = mainDomain+"/user/addRole2User.action";
	$.post(url,{operatorRoleDTOJson:JSON.stringify(operatorRoleDTOJson)},function(rs){
		if(rs.success){
			$("#tt").datagrid('reload');
			backendCommon.closeWin('editUserWin');
		}
	},'json');
}